#pragma once

#include <functional>

#include "Control_Value.h"

namespace gui
{
	class Renderer;

	class Control_StatusBar : public Control_Value
	{
	public:
		Control_StatusBar(CallbackGetFloatValue NewCallbackGetValue, float NewMin, float NewMax, ColorRGBA<unsigned char> NewDisplayColor, std::string NewCaption, Vec<2, float> NewFontSize, ColorRGBA<unsigned char> NewForeColor, ColorRGBA<unsigned char> NewBackColor, Vec<2, float> NewPos, Vec<2, float> NewSize, Control_Menu* NewParentMenu, Host& NewParentHost);
		virtual ~Control_StatusBar(void);

	protected:
		virtual void UpdateVerticesFix(RendererComponent& Renderer);
		virtual void UpdateVerticesSlow(RendererComponent& Renderer);

		float Max;
		float Min;
		float Range;

		ColorRGBA<unsigned char> DisplayColor;

		CallbackGetFloatValue CallbackGetValue;
	};
}

